﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArrayPractice
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] monthArray = new string[]
            {
                "Январь",
                "Февраль",
                "Март",
                "Апрель",
                "Май",
                "Июнь",
                "Июль",
                "Август",
                "Сентябрь",
                "Октябрь",
                "Ноябрь",
                "Декабрь"
            };

            //foreach (var month in monthArray)
            //{
            //    Console.WriteLine(month);
            //}

            //string[] seasons2 = new string[14];
            //string[] seasons3 = new string[6];
            //monthArray.CopyTo(seasons2, 1);
            //foreach (var item in seasons2)
            //{
            //    Console.WriteLine(item);
            //}

            //Array.Copy(monthArray, seasons3, 6);
            //foreach (var item in seasons3)
            //{
            //    Console.WriteLine(item);
            //}

            //Array.Sort(monthArray);
            //var reverse = monthArray.Reverse();
            //foreach(var item in reverse)
            //{
            //    Console.WriteLine(item);
            //}

            Array.Sort(monthArray, new MyMonthCompare());
            foreach (var item in monthArray)
            {
                Console.WriteLine(item);
                
            }
            Console.WriteLine();
            string[] onlyA = Array.FindAll(monthArray, x => x[0] == 'А');
            foreach(var item in onlyA)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();
            string[] lessThenFour = Array.FindAll(monthArray, x => x.Length < 4);
            foreach (var item in lessThenFour)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine();

        }
    }

    //class MyCustomStringComparer : IComparer<string>
    //{
    //    public int Compare(string x, string y)
    //    {
    //       string newCharArray = x.Reverse().ToString();
    //       string newCharArray1 = y.Reverse().ToString();

    //        return String.Compare(newCharArray, newCharArray1);
    //    }
    //}

    class MyMonthCompare : IComparer<string>
    {
        public int Compare(string x, string y)
        {
            if (x[x.Length - 1] < y[y.Length - 1])
                return -1;
            else if (x[x.Length - 1] == y[y.Length - 1])
                return 0;
            return 1;
        }
    }
}
